/** index.js By Beginner Emain:zheng_jinfan@126.com HomePage:http://www.zhengjinfan.cn */

var tab;

layui.config({
	base: '/static/js/',
	version: new Date().getTime()
}).use(['element', 'layer', 'navbar', 'tab'], function () {
	var element = layui.element(),
		$ = layui.jquery,
		layer = layui.layer,
		navbar = layui.navbar();

	tab = layui.tab({
		elem: '.admin-nav-card' // 设置选项卡容器
		, maxSetting: {
			max: 5,
			tipMsg: '只能开5个哇，不能再开了。真的。'
		}
		, contextMenu: true,
		onSwitch: function (data) {
			console.log(data.id); //当前Tab的Id
			console.log(data.index); //得到当前Tab的所在下标
			console.log(data.elem); //得到当前的Tab大容器

			console.log(tab.getCurrentTabId())
		},
		closeBefore: function (obj) { //tab 关闭之前触发的事件
			console.log(obj);
			//obj.title  -- 标题
			//obj.url    -- 链接地址
			//obj.id     -- id
			//obj.tabId  -- lay-id
			if (obj.title === 'BTable') {
				layer.confirm('确定要关闭' + obj.title + '吗?', {icon: 3, title: '系统提示'}, function (index) {
					//因为confirm是非阻塞的，所以这里关闭当前tab需要调用一下deleteTab方法
					tab.deleteTab(obj.tabId);
					layer.close(index);
				});
				//返回true会直接关闭当前tab
				return false;
			} else if (obj.title === '表单') {
				layer.confirm('未保存的数据可能会丢失哦，确定要关闭吗?', {icon: 3, title: '系统提示'}, function (index) {
					tab.deleteTab(obj.tabId);
					layer.close(index);
				});
				return false;
			}
			return true;
		}
	});
	//iframe自适应
	$(window).on('resize', function () {
		var $content = $('.admin-nav-card .layui-tab-content');
		$content.height($(this).height() - 147);
		$content.find('iframe').each(function () {
			$(this).height($content.height());
		});
	}).resize();

	//设置navbar
	navbar.set({
		spreadOne: true,
		elem: '#admin-navbar-side',
		cached: true,
		// data: navs
		cached:false,
		url: '/sysMenu/getTreeData'
	});
	//渲染navbar
	navbar.render();
	//监听点击事件
	navbar.on('click(side)', function (data) {
		tab.tabAdd(data.field);
	});
	//清除缓存
	$('#clearCached').on('click', function () {
		navbar.cleanCached();
		layer.alert('清除完成!', {icon: 1, title: '系统提示'}, function () {
			location.reload();//刷新
		});
	});

	$('.admin-side-toggle').on('click', function () {
		var sideWidth = $('#admin-side').width();
		if (sideWidth === 200) {
			$('#admin-body').animate({
				left: '0'
			}); //admin-footer
			$('#admin-footer').animate({
				left: '0'
			});
			$('#admin-side').animate({
				width: '0'
			});
		} else {
			$('#admin-body').animate({
				left: '200px'
			});
			$('#admin-footer').animate({
				left: '200px'
			});
			$('#admin-side').animate({
				width: '200px'
			});
		}
	});
	$('.admin-side-full').on('click', function () {
		var docElm = document.documentElement;
		//W3C
		if (docElm.requestFullscreen) {
			docElm.requestFullscreen();
		}
		//FireFox
		else if (docElm.mozRequestFullScreen) {
			docElm.mozRequestFullScreen();
		}
		//Chrome等
		else if (docElm.webkitRequestFullScreen) {
			docElm.webkitRequestFullScreen();
		}
		//IE11
		else if (elem.msRequestFullscreen) {
			elem.msRequestFullscreen();
		}
		layer.msg('按Esc即可退出全屏');
	});

	$('#setting').on('click', function () {
		tab.tabAdd({
			href: '/Manage/Account/Setting/',
			icon: 'fa-gear',
			title: '设置'
		});
	});

	//锁屏
	$(document).on('keydown', function () {
		var e = window.event;
		if (e.keyCode === 76 && e.altKey) {
			//alert("你按下了alt+l");
			lock($, layer);
		}
	});
	$('#lock').on('click', function () {
		lock($, layer);
	});

	//手机设备的简单适配
	var treeMobile = $('.site-tree-mobile'),
		shadeMobile = $('.site-mobile-shade');
	treeMobile.on('click', function () {
		$('body').addClass('site-mobile');
	});
	shadeMobile.on('click', function () {
		$('body').removeClass('site-mobile');
	});
});

var isShowLock = false;

function lock($, layer) {
	if (isShowLock)
		return;
	//自定页
	layer.open({
		title: false,
		type: 1,
		closeBtn: 0,
		anim: 6,
		content: $('#lock-temp').html(),
		shade: [0.9, '#393D49'],
		success: function (layero, lockIndex) {
			isShowLock = true;
			// 给显示用户名赋值
			// layero.find('div#lockUserName').text('admin');
			// layero.find('input[name=username]').val('admin');
			layero.find('input[name=lockPwd]').on('focus', function () {
				var $this = $(this);
				if ($this.val() === '输入密码解锁..') {
					$this.val('').attr('type', 'password');
				}
			}).on('blur', function () {
					var $this = $(this);
					if ($this.val() === '' || $this.length === 0) {
						$this.attr('type', 'text').val('输入密码解锁..');
					}
				});

			// 在此处可以写一个请求到服务端删除相关身份认证，因为考虑到如果浏览器被强制刷新的时候，身份验证还存在的情况
			// 锁屏的时候,实际是一个签退的过程
			$.getJSON('/auth/lock', null, function (res) {
				// alert("data:" + JSON.stringify(res));
				if (!res.success) {
					layer.msg(res.msg);
				}
			}, 'json');

			// 绑定解锁按钮的点击事件
			layero.find('button#unlock').on('click', function () {
				var $lockBox = $('div#lock-box');
				var userName = $lockBox.find('div#lockUserName').text();
				var userPwd = $lockBox.find('input[name=lockPwd]').val();
				// alert("userName:" + userName+"userPwd:" + userPwd);

				if (userPwd === '输入密码解锁..' || userPwd ==='') {
					layer.msg('请输入登录密码..', {
						icon: 2,
						time: 1000
					});
					return;
				}
				unlock(userName, userPwd);
			});
			/**
			 * 解锁操作方法
			 * @param userName 用户名
			 * @param userPwd 密码
			 */
			var unlock = function (userName, userPwd) {
				// 这里可以使用ajax方法解锁(实际就是重新登录的过程)
				$.post('/auth/unlock', {userName: userName, userPwd: userPwd}, function (res) {
					// 验证成功
					if (res.success) {
						//关闭锁屏层
						layer.close(lockIndex);
						isShowLock = false;
					} else {
						layer.msg(res.msg, {icon: 2, time: 1000});
					}
				}, 'json');
			};
		}
	});
};